package com.mew.common.dc.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mew.common.entity.mail.Mail;
import com.mew.common.rest.mail.MailBO;
import com.mew.common.rest.mail.MailDetailInfoResponseMessage;
import com.mew.common.rest.mail.MailMopVo;
import com.mew.common.vo.mail.CountMailVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 邮件 Mapper 接口
 * </p>
 *
 * @author Dylin
 * @since 2021-04-01
 */
@DS("mew_core")
public interface MailMapper extends BaseMapper<Mail> {
    /**
     * 获取邮件列表
     * @param userId 用户ID
     * @return
     */
    List<MailBO> getMailList(@Param("userId")long userId);

    List<MailMopVo> getMailMopInVo(@Param("userId")Long userId);

    /**
     * 根据限制获取邮件数量
     * @param fromUser 来源用户
     * @param toUser 去向用户
     * @param type 类型
     * @param limitDay 限日天数
     * @return
     */
    Integer getLimitCount(@Param("fromUser")long fromUser,@Param("toUser")long toUser,@Param("type")int type,@Param("limitDay")int limitDay);

    /**
     * 通过所有用户批量插入邮件   给所有玩家发邮件
     * @param mail
     * @return
     */
    Integer batchInsertByAllUser(@Param("mail") Mail mail);

    /**
     * 查询你邮件详情
     * @param mailId 邮件ID
     * @return
     */
    MailDetailInfoResponseMessage getDetailInfo(@Param("mailId") int mailId);

    CountMailVO countMailByBatch(@Param("batchId") int batchId);
}
